package com.yuandian.management.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuandian.api.management.entity.ConfModuleManagement;
import com.yuandian.bpm.common.data.datascope.BpmBaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 模块配置管理表-Mapper接口
 * @author zfsn
 * @date 2023-4-19
 */
@Mapper
public interface ConfModuleManagementMapper extends BpmBaseMapper<ConfModuleManagement> {

	Page<ConfModuleManagement> queryModuleManagementList(Page<ConfModuleManagement> objectPage, @Param("module") ConfModuleManagement confModuleManagement);

	/**
	 * 批量删除
	 *
	 * @param ids
	 * @return 结果
	 */
	int deleteModuleManagemenByIds(@Param("ids")Integer[] ids);

	/**
	 * 更新运行状态
	 * @param heartInactivation
	 * @return
	 */
	int updateRunningStatus(@Param("heartInactivation") Integer heartInactivation);

	/**
	 * 更新配置状态
	 * @param updateTimeout
	 * @return
	 */
	int updateUpdateConfigFlagByCurrentTime(@Param("updateTimeout") Integer updateTimeout);

	/**
	 * 系统触发更新配置为2: 待更新
	 * (配置更新标识 -1: 更新失败  0: 初始化  1:更新成功  2: 待更新  3: 更新中)
	 * @param id
	 * @return
	 */
	int updateConfigFlagById(@Param("id") Integer id);

	/**
	 * 系统触发更新配置为2: 待更新
	 * (配置更新标识 -1: 更新失败  0: 初始化  1:更新成功  2: 待更新  3: 更新中)
	 * @param moduleCode
	 * @return
	 */
	int updateConfigFlagByModuleCode(@Param("moduleCode") String moduleCode);

	/**更新配置标记
	 *
	 * @param vo ModuleConfigVo
	 * @return
	 */
	int updateConfigFlagByModuleName(ConfModuleManagement vo);

	/**
	 * 查询模块配置管理表 更新配置标记 -1:失败 0：初始化 1：成功 2：更新中
	 * @param moduleName 模块名称，探针''BPM_PROBE'',前台''BPM_WEB_MAIN'',实时流''BPM_RT_FLOW'',数据重组''BPM_DATA_SERVER'',后台配置''BPM_WEB_CONFIG''
	 * @return int
	 */
	Integer queryByUpdateConfigFlag(@Param("moduleName") String moduleName);
}